From 91da0c24e15bc5c02f3705f777d406d67ef9c84d Mon Sep 17 00:00:00 2001 From: robertl Date: Thu, 15 Aug 2002 05:28:35 +0000 Subject: [PATCH] Open-code our own getopt mutant since standards-impaired OSes don't have it. --- gpsbabel/main.c | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/gpsbabel/main.c b/gpsbabel/main.c index c10b2c8b9..4288e713d 100644 --- a/gpsbabel/main.c +++ b/gpsbabel/main.c @@ -19,7 +19,6 @@ #include "defs.h" -#include void usage(const char *pname) @@ -29,10 +28,13 @@ usage(const char *pname) disp_vecs(); } + + int main(int argc, char *argv[]) { int c; + int argn; ff_vecs_t *ivecs = NULL; ff_vecs_t *ovecs = NULL; char *fname = NULL; @@ -41,7 +43,25 @@ main(int argc, char *argv[]) waypt_init(); route_init(); - while (( c = getopt(argc, argv, "?hi:o:f:F:")) != EOF) { + /* + * Open-code getopts since POSIX-impaired OSes don't have one. + */ + for (argn = 1; argn < argc; argn++) { + char *optarg; + + if (argv[argn][0] != '-') { + fatal ("argument '%s' not understood",argv[argn]); + } + + if (argv[argn][1] == '?' || argv[argn][1] == 'h') { + usage(argv[0]); + exit(0); + } + + c = argv[argn][1]; + optarg = argv[argn+1]; + argn++; + switch (c) { case 'i': ivecs = find_vec(optarg); -- 2.30.2